package com.jiang.daily.Q3083;

/**
 * @author Jiang
 * @version 1.0
 * @date 2024/12/26 20:22
 */
class Solution {
    // 一次遍历
    // public boolean isSubstringPresent(String s) {
    //     for (int i = 0; i + 1 < s.length(); i++) {
    //         String son = new StringBuilder(s.substring(i, i + 2)).reverse().toString();
    //         if (s.contains(son))
    //             return true;
    //     }
    //     return false;
    // }

    // 哈希表 + 位运算
    public boolean isSubstringPresent(String s) {
        int[] hash = new int[26];
        for (int i = 0; i + 1 < s.length(); i++) {
            int x = s.charAt(i) - 'a';
            int y = s.charAt(i + 1) - 'a';
            hash[x] |= 1 << y; // hash[x]存放是y的二进制值（1 左移 y）
            if ((hash[y] >> x & 1) != 0) { //hash[y]逆向操作，右移x & 1
                return true;
            }

        }
        return false;
    }
}
